
# 导入PyQt5必要的模块
from PyQt5 import QtCore, QtGui, QtWidgets

# 定义主窗口UI类
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        # 设置主窗口对象名称
        MainWindow.setObjectName("MainWindow")
        # 设置主窗口大小为1000x600像素
        MainWindow.resize(1300, 750)
        # 创建并设置中央窗口部件
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")

        # 创建打开摄像头按钮
        self.open_camera_btn = QtWidgets.QPushButton(self.centralwidget)
        # 设置按钮位置和大小
        self.open_camera_btn.setGeometry(QtCore.QRect(275, 500, 100, 40))
        self.open_camera_btn.setObjectName("open_camera_btn")

        # 创建关闭摄像头按钮（初始状态为禁用）
        self.close_camera_btn = QtWidgets.QPushButton(self.centralwidget)
        self.close_camera_btn.setEnabled(False)
        # 设置按钮位置和大小
        self.close_camera_btn.setGeometry(QtCore.QRect(950, 500, 100, 40))
        self.close_camera_btn.setObjectName("close_camera_btn")

        # 创建原始视频显示标签
        self.original_video_label = QtWidgets.QLabel(self.centralwidget)
        # 设置标签位置和大小
        self.original_video_label.setGeometry(QtCore.QRect(25, 25, 600, 450))
        # 设置字体
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(12)
        self.original_video_label.setFont(font)
        # 设置边框样式和文本对齐方式
        self.original_video_label.setFrameShape(QtWidgets.QFrame.Box)
        self.original_video_label.setAlignment(QtCore.Qt.AlignCenter)
        self.original_video_label.setObjectName("original_video_label")

        # 创建处理后的视频显示标签
        self.processed_video_label = QtWidgets.QLabel(self.centralwidget)
        # 设置标签位置和大小
        self.processed_video_label.setGeometry(QtCore.QRect(675, 25, 600, 450))
        # 设置字体
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(12)
        self.processed_video_label.setFont(font)
        # 设置边框样式和文本对齐方式
        self.processed_video_label.setFrameShape(QtWidgets.QFrame.Box)
        self.processed_video_label.setAlignment(QtCore.Qt.AlignCenter)
        self.processed_video_label.setObjectName("processed_video_label")

        # 设置中央窗口部件
        MainWindow.setCentralWidget(self.centralwidget)
        
        # 创建菜单栏
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 1000, 37))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)

        # 创建状态栏
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)
        
        # 创建文本显示区域
        self.text_cos = QtWidgets.QTextEdit(self.centralwidget)
        # 设置文本框位置和大小
        self.text_cos.setGeometry(QtCore.QRect(300, 600, 700, 100))
        self.text_cos.setObjectName("text_cos")
        # 设置文本框为只读模式
        self.text_cos.setReadOnly(True)
        # 设置字体
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(30)
        self.text_cos.setFont(font)
        
        # 重新翻译UI文本
        self.retranslateUi(MainWindow)
        # 自动连接信号和槽
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        # 获取翻译器
        _translate = QtCore.QCoreApplication.translate
        # 设置窗口标题
        MainWindow.setWindowTitle(_translate("MainWindow", "手势识别系统"))
        # 设置按钮文本
        self.open_camera_btn.setText(_translate("MainWindow", "打开摄像头"))
        self.close_camera_btn.setText(_translate("MainWindow", "关闭摄像头"))
        # 设置标签初始文本
        self.original_video_label.setText(_translate("MainWindow", "等待摄像头开启"))
        self.processed_video_label.setText(_translate("MainWindow", "等待手势识别"))

# 如果直接运行该文件，执行以下代码
if __name__ == "__main__":
    # 导入系统模块
    import sys
    # 创建QApplication实例
    app = QtWidgets.QApplication(sys.argv)
    # 创建主窗口实例
    MainWindow = QtWidgets.QMainWindow()
    # 创建UI对象
    ui = Ui_MainWindow()
    # 设置UI
    ui.setupUi(MainWindow)
    # 显示窗口
    MainWindow.show()
    # 进入应用程序主循环
    sys.exit(app.exec_())